// #include <iostream>
// #include <cstdint>  // 用于固定宽度整数类型
//
// // 自定义结构体用于演示复合类型
// struct Player {
//     int id;         // 4字节
//     char name[20];  // 20字节
//     bool isOnline;  // 1字节（通常对齐到4字节）
// };                  // 总大小可能为 28 字节（因内存对齐）
//
// int main() {
//     // 基本类型
//     bool flag = true;                           // 1字节（true/false）
//     char ch = 'A';                              // 1字节（-128~127）
//     unsigned char u_ch = 255;                   // 1字节（0~255）
//     short s = 32767;                            // 2字节（-32768~32767）
//     int i = 2147483647;                         // 4字节（-2^31~2^31-1）
//     long l = 2147483647L;                       // 4或8字节（平台相关）
//     long long ll = 9223372036854775807LL;       // 8字节
//     float f = 3.14f;                            // 4字节（单精度浮点）
//     double d = 3.1415926535;                    // 8字节（双精度浮点）
//
//     // 固定宽度类型（C++11）
//     int32_t fixed32 = 100;                      // 精确4字节
//     uint64_t fixed64 = 100ULL;                  // 精确8字节
//
//     // 指针类型
//     int* ptr = &i;                              // 4或8字节（32/64位系统）
//
//     // 数组
//     int arr[5] = {1,2,3,4,5};                   // 4*5=20字节
//
//     // 结构体实例
//     Player p1;                                   // 结构体总大小
//
//     // 输出变量大小
//     std::cout << "=== 基础类型大小 ===" << std::endl;
//     std::cout << "bool:      " << sizeof(flag) << " bytes" << std::endl;
//     std::cout << "char:      " << sizeof(ch) << " bytes" << std::endl;
//     std::cout << "short:     " << sizeof(s) << " bytes" << std::endl;
//     std::cout << "int:       " << sizeof(i) << " bytes" << std::endl;
//     std::cout << "long:      " << sizeof(l) << " bytes" << std::endl;
//     std::cout << "long long: " << sizeof(ll) << " bytes" << std::endl;
//     std::cout << "float:     " << sizeof(f) << " bytes" << std::endl;
//     std::cout << "double:    " << sizeof(d) << " bytes\n" << std::endl;
//
//     std::cout << "=== 其他类型大小 ===" << std::endl;
//     std::cout << "int32_t:   " << sizeof(fixed32) << " bytes" << std::endl;
//     std::cout << "uint64_t:  " << sizeof(fixed64) << " bytes" << std::endl;
//     std::cout << "int*:      " << sizeof(ptr) << " bytes" << std::endl;
//     std::cout << "int[5]:    " << sizeof(arr) << " bytes" << std::endl;
//     std::cout << "Player:    " << sizeof(p1) << " bytes" << std::endl;
//
//     // 验证结构体对齐（编译时检查）
//     static_assert(sizeof(Player) >= 25, "Player结构体大小异常");
//
//     return 0;
// }